﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using StyleMVVM.Data;
using StyleMVVM.DependencyInjection.Impl;

namespace StyleMVVM.DependencyInjection
{
	/// <summary>
	/// Classes attributed with this will be created at startup
	/// </summary>
	[AttributeUsage(AttributeTargets.Class)]
	public class CoreExportAttribute : Attribute, ICoreExportAttribute
	{
		public CoreExportAttribute()
		{
			StartOrder = (int)CoreExportStartOrder.Normal;
		}

		public CoreExportAttribute(CoreExportStartOrder startOrder)
		{
			StartOrder = (int)startOrder;
		}

		public CoreExportAttribute(CoreExportStartOrder startOrder, bool singleton)
		{
			StartOrder = (int)startOrder;
		}

		public int StartOrder { get; set; }
	}
}